﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<string>
#include<iostream>
using namespace std;

//﻿int main()
//
//{
//
//	string a = "hello world";
//
//	string b = a;
//
//	if (a.c_str() == b.c_str())
//
//	{
//
//		cout << "true" << endl;
//
//	}
//
//	else cout << "false" << endl;
//
//	string c = b;
//
//	c = "";
//
//	if (a.c_str() == b.c_str())
//
//	{
//
//		cout << "true" << endl;
//
//	}
//
//	else cout << "false" << endl;
//
//	a = "";
//
//	if (a.c_str() == b.c_str())
//
//	{
//
//		cout << "true" << endl;
//
//	}
//
//	else cout << "false" << endl;
//
//	return 0;
//
//}

//int main()
//{
//
//	string str("Hello Bit.");
//
//	str.reserve(111);
//
//	str.resize(5);
//
//	str.reserve(50);
//
//	cout << str.size() << ":" << str.capacity() << endl;
//
//	return 0;
//
//}.
//int main()
//{
//	string strText = "How are you?";
//
//	string strSeparator = " ";
//
//	string strResult;
//
//	int size_pos = 0;
//
//	int size_prev_pos = 0;
//
//	while ((size_pos = strText.find_first_of(strSeparator, size_pos)) != string::npos)
//
//	{
//
//		strResult = strText.substr(size_prev_pos, size_pos - size_prev_pos);
//
//		cout << strResult << " ";
//
//		size_prev_pos = ++size_pos;
//
//	}
//
//	if (size_prev_pos != strText.size())
//
//	{
//
//		strResult = strText.substr(size_prev_pos, size_pos - size_prev_pos);
//
//		cout << strResult << " ";
//
//	}
//
//	cout << endl;
//
//	return 0;
//}

int myAtoi(string str) {
    long ret = 0;
    int i = 0;// 找非空格
    while (str[i] == ' ')
    {
        ++i;
    }
    int flag = 1;
    if (str[i] == '-')
    {
        flag = -1;
    }
    if (str[i] == '+' || str[i] == '-')
    {
        ++i;
    }
    int j = i;// 非数字就停下
    while (str[j] >= '0' && str[j] <= '9')
    {
        ret = ret * 10 + (str[j++] - '0');
    }
    if (ret >= INT_MAX && flag == 1)
        return INT_MAX;
    if (ret > INT_MAX && flag == -1)
        return INT_MIN;
    return ret * flag;
}

int main()
{
    string s("   -42");
    myAtoi(s);
    cout << myAtoi(s);
    return 0;
}